package io;

import java.io.*;

public class Hello {
    public static void main(String[] args) throws IOException {
        /*（FileInputStream 和FileOutputStream）利用FileInputStream 和FileOutputStream，完成
下面的要求：
1） 用FileOutputStream 在当前项目doc目录下创建一个文件“test.txt”，并向文件写入“Hello
World”，如果文件已存在，则在原有文件内容后面追加内容。
2） 用FileInputStream 读取test.txt 文件，并在控制台上打印出test.txt 中的内容。
3） 要求用try-catch-finally 处理异常，并且关闭流应放在finally 块中。
*/
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream("homework/test.txt",true);
            String connect = "Hello\t\nWorld";
            try {
                byte[] bytes = connect.getBytes("UTF-8");
                try {
                    fos.write(bytes,0,connect.length());
                    fos.flush();//不要忘记刷新缓冲区
                    System.out.println("保存完成！");
                } catch (IOException e2) {
                    e2.printStackTrace();
                }
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (fos != null) {
                try {
                    fos.close();
                    fos = null;
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        }
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("test.txt");
            byte[] readByte = new byte[512];
            int length = -1;
            String print = null;
            while ((length = fis.read(readByte)) != -1){//一定是在读字节数组后不为-1，即一定读取了一部分的数据时，再将它转换为字符串
                print = new String(readByte,0,length);
            }
            System.out.println(print);

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            fis.close();
        }
    }
}
